#define _CRT_SECURE_NO_WARNINGS 1


#include<vector>
#include<iostream>

using namespace std;

int main()
{
    int n = 0, k = 0;
    cin >> n >> k;
    vector<int> a(n + 1);
    vector<int> b(n + 1);
    for (int i = 1; i <= n; i++)
    {
        cin >> a[i];
    }
    for (int i = 1; i <= n; i++)
    {
        cin >> b[i];
    }
    vector<pair<int, int>> v;
    vector<int> dp_a(n + 1, 0), dp_b(n + 1, 0);
    for (int i = 1; i <= n; i++)
    {
        dp_a[i] = dp_a[i - 1] + a[i];
    }
    for (int i = 1; i <= n; i++)
    {
        dp_b[i] = dp_b[i - 1] + b[i];
    }
    int x = 0, y = 0;
    for (int i = 1; i <= n; i++)
    {
        if (i + k - 1 <= n)
        {
            x = dp_a[i + k - 1] - dp_a[i - 1];
            y = dp_b[i + k - 1] - dp_b[i - 1];
            v.push_back({ x,y });
        }
    }
    int Max = 0, Min = 0, size = v.size();
    for (int i = 0; i < size; i++)
    {
        if (v[i].first > v[Max].first)
        {
            Max = i;
        }
    }
    for (int i = 0; i < size; i++)
    {
        if (v[i].first == v[Max].first)
        {
            Min = i;
            break;
        }
    }
    for (int i = Min; i < size; i++)
    {
        if (v[i].first == v[Max].first)
        {
            if (v[i].second < v[Min].second)
            {
                Min = i;
            }
        }
    }
    for (int i = 0; i < size; i++)
    {
        if (v[i].first == v[Max].first && v[i].second == v[Min].second)
        {
            cout << i + 1 << endl;
        }
    }

    return 0;
}